/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package entidades;

import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import persistencia.agente.DetallePedidoProducto;
import persistencia.agente.DetallePedidoServicio;
import persistencia.agente.Empleado;
import persistencia.agente.EstadoPedido;
import persistencia.agente.Pedido;
import persistencia.agente.Producto;
import persistencia.agente.Servicio;

/**
 *
 * @author Sebastian
 */
public class PedidoImpl implements Pedido {

    private int nroPedido;
    private Date fechaIngreso;
    private EstadoPedido estadoPedido;
    private List<DetallePedidoProducto> detallesProductos;
    private List<DetallePedidoServicio> detallesServicios;

    public Date getFechaIngreso() {
        return fechaIngreso;
    }

    public void setFechaIngreso(Date fechaIngreso) {
        this.fechaIngreso = fechaIngreso;
    }

    public List<DetallePedidoProducto> getDetallesProductos() {
        if (detallesProductos == null) {
            detallesProductos = new ArrayList<DetallePedidoProducto>();
        }
        return detallesProductos;
    }

    @Deprecated
    public void setDetallesProductos(List<DetallePedidoProducto> detallesProductos) {
        this.detallesProductos = detallesProductos;
    }

    public List<DetallePedidoServicio> getDetallesServicios() {
        if (detallesServicios == null) {
            detallesServicios = new ArrayList<DetallePedidoServicio>();
        }
        return detallesServicios;
    }

    @Deprecated
    public void setDetallesServicios(List<DetallePedidoServicio> detallesServicios) {
        this.detallesServicios = detallesServicios;
    }

    public EstadoPedido getEstadoPedido() {
        return estadoPedido;
    }

    public void setEstadoPedido(EstadoPedido estadoPedido) {
        this.estadoPedido = estadoPedido;
    }

    public void agregarDetallePedidoPoducto(String descripcion, int cantidad, double importeSubtotal,
            Producto producto) {

        DetallePedidoProducto detalle = (DetallePedidoProducto) new DetallePedidoProductoImpl();

        detalle.setDescripcion(descripcion);
        detalle.setCantidad(cantidad);
        detalle.setImporteSubtotal(importeSubtotal);
        detalle.setProducto(producto);

        if (this.detallesProductos == null) {
            detallesProductos = new ArrayList<DetallePedidoProducto>();
        }
        this.detallesProductos.add(detalle);
    }

    public void agregarDetallePedidoServicio(String descripcion, Date fechaHoraInicio, int duracion, double importeSubtotal,
            Servicio servicio, Empleado empleadoAsignado) {

        DetallePedidoServicio detalle = (DetallePedidoServicio) new DetallePedidoServicioImpl();
        detalle.setDescripcion(descripcion);
        detalle.setFechaHoraInicio(fechaHoraInicio);
        detalle.setDuracion(duracion);
        detalle.setImporteSubtotal(importeSubtotal);
        detalle.setServicio(servicio);
        detalle.setResponsable(empleadoAsignado);

        if (detallesServicios == null) {
            detallesServicios = new ArrayList<DetallePedidoServicio>();
        }
        this.detallesServicios.add(detalle);
    }

    public int getNroPedido() {
        return nroPedido;
    }

    public void setNroPedido(int nroPedido) {
        this.nroPedido = nroPedido;
    }
}
